﻿using System.Windows;
using System.Windows.Media;

namespace Silverlight.InputCtrl
{
    public class Behaviortrigger : DependencyObject
    {
        public bool OnChanged
        {
            get { return (bool)GetValue(OnChangedProperty); }
            set { SetValue(OnChangedProperty, value); }
        }

        // Using a DependencyProperty as the backing store for triggerLostFocus.  This enables animation, styling, binding, etc...
        public static readonly DependencyProperty OnChangedProperty =
            DependencyProperty.Register("OnChanged", typeof(bool), typeof(Behaviortrigger), new PropertyMetadata(false));

        public bool Onleave
        {
            get { return (bool)GetValue(OnleaveProperty); }
            set { SetValue(OnleaveProperty, value); }
        }

        // Using a DependencyProperty as the backing store for triggerLostFocus.  This enables animation, styling, binding, etc...
        public static readonly DependencyProperty OnleaveProperty =
            DependencyProperty.Register("Onleave", typeof(bool), typeof(Behaviortrigger), new PropertyMetadata(true));

        public bool BorderIndicator
        {
            get { return (bool)GetValue(BorderIndicatorProperty); }
            set { SetValue(BorderIndicatorProperty, value); }
        }

        // Using a DependencyProperty as the backing store for triggerLostFocus.  This enables animation, styling, binding, etc...
        public static readonly DependencyProperty BorderIndicatorProperty =
            DependencyProperty.Register("BorderIndicator", typeof(bool), typeof(Behaviortrigger), new PropertyMetadata(true));

        public Brush InvalidBorder
        {
            get { return (Brush)GetValue(InvalidBorderProperty); }
            set { SetValue(InvalidBorderProperty, value); }
        }

        // Using a DependencyProperty as the backing store for triggerLostFocus.  This enables animation, styling, binding, etc...
        public static readonly DependencyProperty InvalidBorderProperty =
            DependencyProperty.Register("InvalidBorder", typeof(Brush), typeof(Behaviortrigger), new PropertyMetadata(null));

        public Brush TooltipBorder
        {
            get { return (Brush)GetValue(TooltipBorderProperty); }
            set { SetValue(TooltipBorderProperty, value); }
        }

        // Using a DependencyProperty as the backing store for triggerLostFocus.  This enables animation, styling, binding, etc...
        public static readonly DependencyProperty TooltipBorderProperty =
            DependencyProperty.Register("TooltipBorder", typeof(Brush), typeof(Behaviortrigger), new PropertyMetadata(null));

        public Brush TooltipBackground
        {
            get { return (Brush)GetValue(TooltipBackgroundProperty); }
            set { SetValue(TooltipBackgroundProperty, value); }
        }

        // Using a DependencyProperty as the backing store for triggerLostFocus.  This enables animation, styling, binding, etc...
        public static readonly DependencyProperty TooltipBackgroundProperty =
            DependencyProperty.Register("TooltipBackground", typeof(Brush), typeof(Behaviortrigger), new PropertyMetadata(null));

        public Brush TooltipForeground
        {
            get { return (Brush)GetValue(TooltipForegroundProperty); }
            set { SetValue(TooltipForegroundProperty, value); }
        }

        // Using a DependencyProperty as the backing store for triggerLostFocus.  This enables animation, styling, binding, etc...
        public static readonly DependencyProperty TooltipForegroundProperty =
            DependencyProperty.Register("TooltipForeground", typeof(Brush), typeof(Behaviortrigger), new PropertyMetadata(null));

        public Thickness TooltipBorderThickness
        {
            get { return (Thickness)GetValue(TooltipBorderThicknessProperty); }
            set { SetValue(TooltipBorderThicknessProperty, value); }
        }

        // Using a DependencyProperty as the backing store for triggerLostFocus.  This enables animation, styling, binding, etc...
        public static readonly DependencyProperty TooltipBorderThicknessProperty =
            DependencyProperty.Register("TooltipBorderThickness", typeof(Thickness), typeof(Behaviortrigger), new PropertyMetadata(null));
        
        public Thickness InvalidBorderThickness
        {
            get { return (Thickness)GetValue(InvalidBorderThicknessProperty); }
            set { SetValue(InvalidBorderThicknessProperty, value); }
        }

        // Using a DependencyProperty as the backing store for triggerLostFocus.  This enables animation, styling, binding, etc...
        public static readonly DependencyProperty InvalidBorderThicknessProperty =
            DependencyProperty.Register("InvalidBorderThickness", typeof(Thickness), typeof(Behaviortrigger), new PropertyMetadata(null));

        public bool MessageTooltip
        {
            get { return (bool)GetValue(MessageTooltipProperty); }
            set { SetValue(MessageTooltipProperty, value); }
        }

        // Using a DependencyProperty as the backing store for triggerLostFocus.  This enables animation, styling, binding, etc...
        public static readonly DependencyProperty MessageTooltipProperty =
            DependencyProperty.Register("MessageTooltip", typeof(bool), typeof(Behaviortrigger), new PropertyMetadata(true));

    }
}
